echo on
%A = [0     2     4     2
%     6     8     9     8
%     4     0     0     5
%     6     2     4     7];
A0=A;
n =3;
pause
P = eye(n);
pause

% scegliamo il pivot

[elm,indm]=max(abs(A(1:n,1)))
pause
% scambiamo le righe di A
A([1 indm],:)=A([indm,1],:)
pause     
% scambiamo le righe di P 
P([1 indm],:)=P([indm,1],:)
pause
% inizializzo L
L = zeros(n);
% calcolo gli elementi di L :  L(2:4,1)=A(2:4,1)/A(1,1)
L(2:n,1)=A(2:n,1)/A(1,1)
pause
% calcolo la U  riscrivendola in A
% aggiorno la seconda riga
% U(1,:)=A(1,:)
A(2:n,2:n)=A(2:n,2:n)-L(2:n,1)*A(1,2:n);
A(2:n,1)=0
pause
% verifichiamo
P*A0 - (L+eye(n))*A
pause
% ripeto il procedimento sull sottomatrice  A(2:n,2:n)

[elm,indm]=max(abs(A(2:n,2)))
indm = indm+1;
pause
% scambiamo le righe di A
A([2 indm],:)=A([indm,2],:)
     
% scambiamo le righe di P 
P([2 indm],:)=P([indm,2],:)
% scambiamo le righe di L
L([2 indm],:)=L([indm,2],:)
pause
% calcolo gli elementi di L 
L(3:n,2)=A(3:n,2)/A(2,2)
pause
% calcolo la U  riscrivendola in A
% 
A(3:n,3:n)=A(3:n,3:n)-L(3:n,2)*A(2,3:n);
A(3:n,2)=0
pause
% verifichiamo
P*A0 - (L+eye(n))*A
pause
% ripeto il procedimento sull sottomatrice  A(3:n,3:n)

[elm,indm]=max(abs(A(3:n,3)))
indm=indm+2
pause
% scambiamo le righe di A
A([3 indm],:)=A([indm,3],:)
     
% scambiamo le righe di P 
P([3 indm],:)=P([indm,3],:)
% scambiamo le righe di L
L([3 indm],:)=L([indm,3],:)
pause
% calcolo gli elementi di L 
L(4:n,3)=A(4:n,3)/A(3,3)
pause
% calcolo la U  riscrivendola in A
%
A(4:n,4:n)=A(4:n,4:n)-L(4:n,3)*A(3,4:n);
A(4:n,3)=0
pause
% verifichiamo
P*A0 - (L+eye(n))*A

